package com.xqboss.apps.vo.punch;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xqboss.apps.vo.consumer.ConsumerTeamVo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List;

@Data
@ApiModel("用户打卡首页信息")
public class UserPunchIndexVo {

    @ApiModelProperty("卡槽信息")
    private List<UserPunchSlotVo> slotList;

    @ApiModelProperty("用户打卡规则")
    private PunchRuleVo punchRule;

    @ApiModelProperty("上次打卡时间")
    private LocalDateTime lastPunchTime;

    @ApiModelProperty("下次打卡时间")
    private LocalDateTime nextPunchTime;

    @ApiModelProperty("打卡倒计时")
    private Integer punchCountdown;

    @ApiModelProperty("打卡间隔")
    private Integer punchInterval;

    @ApiModelProperty("今日打卡次数")
    private Integer todayPunchCount;

    @ApiModelProperty("总打卡次数")
    private Integer totalPunchCount;

    @ApiModelProperty("今日打卡收益")
    private BigDecimal todayPunchIncome;

    @ApiModelProperty("队伍信息")
    private ConsumerTeamVo teamInfo;

    @ApiModelProperty("总卡槽数")
    private int slotTotalCount;

    @ApiModelProperty("剩余没有装备卡槽数")
    private int remainSlotCount;

    @ApiModelProperty("卡槽总下次空投")
    private BigDecimal slotTotalIncome;

    @ApiModelProperty("实际有效卡槽数")
    private int slotEffectiveCount;

    @ApiModelProperty("今日是否还可以打卡")
    private Boolean todayCanPunch;

    @ApiModelProperty("打卡开始时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
    private LocalTime punchStartTime;

    @ApiModelProperty("打卡结束时间")
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "HH:mm")
    private LocalTime punchEndTime;
}
